Добавление глобального контекста
Глобальный контекст это очень простая вещь - все свойства и методы, которые можно использовать в скрипте непосредственно - они глобальные, т.е. расположены в глобальном контексте.
Например, функция Сообщить()
- глобальная. Мы используем ее сразу, без уточнения области видимости.
Устройство глобального контекста
Технически, глобальных контекстов - несколько, разделены по функциональному назначению. Глобальный контекст - это класс, по структуре очень похожий на обычный класс.
Класс глобального контекста должен быть унаследован от GlobalContextBase<>.
namespace ScriptEngine.HostedScript.Library
{
[GlobalContext(Category="Файловые операции")]
public class FileOperations : GlobalContextBase<FileOperations>
{
[ContextMethod("КопироватьФайл", "CopyFile")]
public void CopyFile(string source, string destination)
{
System.IO.File.Copy(source, destination, true);
}
Кроме того, класс нужно пометить атрибутом GlobalContextAttribute
Это позволит движку OneScript автоматически найти его и загрузить в глобальную область видимости.
Обратите внимание на параметр атрибута GlobalContext. В параметре Name можно указать раздел синтакс-помощника, в который попадет документация по методам данного глобального контекста.
Методы глобального контекста
Все методы класса, отмеченные атрибутом ContextMethodAttribute
будут видны в скрипте, как глобальные.